/******************************************************************************
 * @File name   :      MasterDataDealerInfo.java
 *
 * @Author      :      ANMA
 *
 * @Date        :      Jul 15, 2015
 *
 * @Copyright Notice: 
 * Copyright (c) 2014 DMS, Inc. All  Rights Reserved.
 * This software is published under the terms of the DMS Software
 * License version 1.0, a copy of which has been included with this
 * distribution in the LICENSE.txt file.
 * 
 * ----------------------------------------------------------------------------
 * Date                         Who         Version         Comments
 * Jul 15, 2015 7:41:52 PM    ANMA      1.0            Initial Version
 *****************************************************************************/
package com.cap.bts.crmdp.dealer.logistic.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

import com.cap.bts.framework.common.domain.BaseDomain;

/**
 * 
 */
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Entity
@Table(name="TT_LOGISTIC_PROCESS")
@AttributeOverrides({
	@AttributeOverride(name="createDate", column=@Column(name="CREATE_DATE", nullable = false)),
	@AttributeOverride(name="createBy", column=@Column(name="CREATE_BY")),
    @AttributeOverride(name="lastUpdateBy", column=@Column(name="LAST_UPDATE_BY")),
    @AttributeOverride(name="lastUpdateDate", column=@Column(name="LAST_UPDATE_DATE"))
})
public class LogisticProcess extends BaseDomain implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8992485389224183898L;

	private Long id;
	private Long dealerId;
	private String poNum;
	private Long cardDefId;
    private Integer shippedQuantity;
    private Date shipDate;
    private Date estimatedArrivalDate;
    private String logisticsProvider;
    private String logisticsTrackingNum;
    private Date receiveDate;
    private Integer receivedQuantity;
    private Integer type;
    private Integer status;
	
	
	/**
	 * @return the id
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public Long getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the dealerId
     */

    @Column(name="DEALER_ID")
    public Long getDealerId() {
        return dealerId;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param dealerId the dealerId to set
     */
    public void setDealerId(Long dealerId) {
        this.dealerId = dealerId;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the poNum
     */

    @Column(name="PO_NUM")
    public String getPoNum() {
        return poNum;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param poNum the poNum to set
     */
    public void setPoNum(String poNum) {
        this.poNum = poNum;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the cardDefId
     */

    @Column(name="CARD_DEF_ID")
    public Long getCardDefId() {
        return cardDefId;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param cardDefId the cardDefId to set
     */
    public void setCardDefId(Long cardDefId) {
        this.cardDefId = cardDefId;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the shippedQuantity
     */
    @Column(name="SHIPPED_QUANTITY")
    public Integer getShippedQuantity() {
        return shippedQuantity;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param shippedQuantity the shippedQuantity to set
     */
    public void setShippedQuantity(Integer shippedQuantity) {
        this.shippedQuantity = shippedQuantity;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the shipDate
     */
    @Column(name="SHIP_DATE")
    public Date getShipDate() {
        if(shipDate==null){
            return null;
        }
        return (Date)shipDate.clone();
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param shipDate the shipDate to set
     */
    public void setShipDate(Date shipDate) {
        if(shipDate==null){
            this.shipDate=null;
        }else{
            this.shipDate = (Date)shipDate.clone();
        }
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the estimatedArrivalDate
     */
    @Column(name="ESTIMATED_ARRIVAL_DATE")
    public Date getEstimatedArrivalDate() {
        if(estimatedArrivalDate==null){
            return null;
        }
        return (Date)estimatedArrivalDate.clone();
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param estimatedArrivalDate the estimatedArrivalDate to set
     */
    public void setEstimatedArrivalDate(Date estimatedArrivalDate) {
        if(estimatedArrivalDate==null){
            this.estimatedArrivalDate=null;
        }else{
            this.estimatedArrivalDate = (Date)estimatedArrivalDate.clone();
        }
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the logisticsProvider
     */
    @Column(name="LOGISTICS_PROVIDER")
    public String getLogisticsProvider() {
        return logisticsProvider;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param logisticsProvider the logisticsProvider to set
     */
    public void setLogisticsProvider(String logisticsProvider) {
        this.logisticsProvider = logisticsProvider;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the logisticsTrackingNum
     */
    @Column(name="LOGISTICS_TRACKING_NUM")
    public String getLogisticsTrackingNum() {
        return logisticsTrackingNum;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param logisticsTrackingNum the logisticsTrackingNum to set
     */
    public void setLogisticsTrackingNum(String logisticsTrackingNum) {
        this.logisticsTrackingNum = logisticsTrackingNum;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the receiveDate
     */
    @Column(name="RECEIVE_DATE")
    public Date getReceiveDate() {
        if(receiveDate==null){
            return null;
        }
        return (Date)receiveDate.clone();
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param receiveDate the receiveDate to set
     */
    public void setReceiveDate(Date receiveDate) {
        if(receiveDate==null){
            this.receiveDate=null;
        }else{
            this.receiveDate = (Date)receiveDate.clone();
        }
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @return the receivedQuantity
     */
    @Column(name="RECEIVED_QUANTITY")
    public Integer getReceivedQuantity() {
        return receivedQuantity;
    }

    /**
     * @Date        :      Aug 11, 2015
     *
     * @param receivedQuantity the receivedQuantity to set
     */
    public void setReceivedQuantity(Integer receivedQuantity) {
        this.receivedQuantity = receivedQuantity;
    }
    
    @Column(name="TYPE")
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    
    @Column(name="STATUS")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    
    
    
		
}
